---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.8.0
  creationTimestamp: null
  name: scopes.kubelatte.io
spec:
  group: kubelatte.io
  names:
    kind: Scope
    listKind: ScopeList
    plural: scopes
    singular: scope
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Scope is the Schema for the Scopes API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            properties:
              items:
                items:
                  description: Item ScopeItems defines items of Scope
                  properties:
                    match:
                      properties:
                        annotationSelector:
                          properties:
                            matchExpressions:
                              items:
                                properties:
                                  key:
                                    type: string
                                  operator:
                                    enum:
                                    - In
                                    - NotIn
                                    - Exists
                                    - DoesNotExist
                                    type: string
                                  values:
                                    items:
                                      type: string
                                    type: array
                                required:
                                - key
                                - operator
                                type: object
                              type: array
                          required:
                          - matchExpressions
                          type: object
                        excludedNamespaces:
                          properties:
                            regex:
                              items:
                                type: string
                              type: array
                            values:
                              items:
                                type: string
                              type: array
                          type: object
                        kinds:
                          items:
                            properties:
                              apiGroups:
                                items:
                                  type: string
                                type: array
                              kinds:
                                items:
                                  type: string
                                type: array
                            type: object
                          type: array
                        labelSelector:
                          properties:
                            matchExpressions:
                              items:
                                properties:
                                  key:
                                    type: string
                                  operator:
                                    enum:
                                    - In
                                    - NotIn
                                    - Exists
                                    - DoesNotExist
                                    type: string
                                  values:
                                    items:
                                      type: string
                                    type: array
                                required:
                                - key
                                - operator
                                type: object
                              type: array
                          required:
                          - matchExpressions
                          type: object
                        matchConditions:
                          properties:
                            object:
                              items:
                                properties:
                                  condition:
                                    enum:
                                    - MustExist
                                    - MustNotExist
                                    type: string
                                  path:
                                    type: string
                                required:
                                - condition
                                - path
                                type: object
                              type: array
                            oldObject:
                              items:
                                properties:
                                  condition:
                                    enum:
                                    - MustExist
                                    - MustNotExist
                                    type: string
                                  path:
                                    type: string
                                required:
                                - condition
                                - path
                                type: object
                              type: array
                          type: object
                        name:
                          properties:
                            regex:
                              type: string
                            value:
                              type: string
                          type: object
                        namespaceSelector:
                          properties:
                            matchExpressions:
                              items:
                                properties:
                                  key:
                                    type: string
                                  operator:
                                    enum:
                                    - In
                                    - NotIn
                                    - Exists
                                    - DoesNotExist
                                    type: string
                                  values:
                                    items:
                                      type: string
                                    type: array
                                required:
                                - key
                                - operator
                                type: object
                              type: array
                          required:
                          - matchExpressions
                          type: object
                        namespaces:
                          properties:
                            regex:
                              items:
                                type: string
                              type: array
                            values:
                              items:
                                type: string
                              type: array
                          type: object
                        operations:
                          items:
                            type: string
                          type: array
                        scope:
                          enum:
                          - '*'
                          - Cluster
                          - Namespaced
                          type: string
                        userInfo:
                          properties:
                            username:
                              type: string
                            usernameRegex:
                              type: string
                          type: object
                      required:
                      - kinds
                      type: object
                    name:
                      type: string
                    rule:
                      properties:
                        rego:
                          properties:
                            parameters:
                              type: string
                            template:
                              type: string
                          required:
                          - template
                          type: object
                        simples:
                          items:
                            properties:
                              action:
                                default: deny
                                enum:
                                - allow
                                - deny
                                type: string
                              message:
                                type: string
                              name:
                                type: string
                              path:
                                type: string
                              value:
                                type: string
                            required:
                            - name
                            - path
                            - value
                            type: object
                          type: array
                      type: object
                  required:
                  - name
                  type: object
                type: array
              type:
                default: mutation
                type: string
            required:
            - items
            type: object
          status:
            properties:
              conditions:
                items:
                  properties:
                    lastTransitionTime:
                      format: date-time
                      type: string
                    message:
                      type: string
                    status:
                      type: string
                    type:
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              phase:
                description: 'INSERT ADDITIONAL STATUS FIELD - define observed state
                  of cluster Important: Run "make" to regenerate code after modifying
                  this file'
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
